package br.com.absolutech.study.chapter3.p132;

public class BlocoInicializacao extends SuperBlocoInicializacao {

	static {
		System.out.println("BIE[1]bloco de inicializacao estatico da classe BlocoInicializacao sendo executado");
	}

	{
		System.out.println("BI[1]bloco de inicializacao da classe BlocoInicializacao sendo executado");
	}

	public BlocoInicializacao() {
		System.out.println("C[1] Construindo classe BlocoInicializacao");
	}


	public static void teste1() {
		//		System.out.println("M[1]method teste1 sendo executado");
	}

	public void teste2() {
		//		System.out.println("M[2]method teste2 sendo executado");
	}


	public static void main(String[] args) {

		//BIE[2],BIE[1]
		BlocoInicializacao blocoInicializacao = null;
		BlocoInicializacao.teste1();

		/* */

		//BI[2],C[2],BI[1],C[1]
		BlocoInicializacao objetoCriado = new BlocoInicializacao();
		objetoCriado.teste2();
	}

}


class SuperBlocoInicializacao {

	{
		System.out.println("BI[2]bloco de inicializacao da classe SuperBlocoInicializacao sendo executado");
	}

	static {
		System.out.println("BIE[2]bloco de inicializacao estatico da classe SuperBlocoInicializacao sendo executado");
	}

	public SuperBlocoInicializacao() {
		System.out.println("C[2] Construindo classe SuperBlocoInicializacao");
	}

}